/**
 * 开发日志记录工具
 * 用于记录后台管理模块开发过程中的重要事件和变更
 * 浏览器环境版本 - 只使用控制台日志
 */

/**
 * 生成带时间戳的日志消息
 * @param {string} message - 日志消息
 * @returns {string} 带时间戳的日志消息
 */
const formatLog = (message) => {
  const timestamp = new Date().toISOString();
  return `[${timestamp}] ${message}\n`;
};

/**
 * 在浏览器控制台中记录日志
 * @param {string} message - 日志消息
 */
const logToConsole = (message) => {
  const logMessage = formatLog(message);
  console.log(logMessage);
};

/**
 * 开发日志记录工具对象
 */
const logger = {
  /**
   * 记录信息类型日志
   * @param {string} message - 日志消息
   */
  info: (message) => {
    const fullMessage = `INFO: ${message}`;
    console.info(fullMessage);
    logToConsole(fullMessage);
  },
  
  /**
   * 记录开发进度日志
   * @param {string} module - 模块名称
   * @param {string} progress - 进度描述
   */
  progress: (module, progress) => {
    const fullMessage = `PROGRESS [${module}]: ${progress}`;
    console.log(fullMessage);
    logToConsole(fullMessage);
  },
  
  /**
   * 记录错误日志
   * @param {string} message - 错误消息
   * @param {Error} error - 错误对象
   */
  error: (message, error = null) => {
    let fullMessage = `ERROR: ${message}`;
    if (error) {
      fullMessage += ` - ${error.message}\n${error.stack}`;
    }
    console.error(fullMessage);
    logToConsole(fullMessage);
  },
  
  /**
   * 记录警告日志
   * @param {string} message - 警告消息
   */
  warn: (message) => {
    const fullMessage = `WARN: ${message}`;
    console.warn(fullMessage);
    logToConsole(fullMessage);
  },
  
  /**
   * 记录文件创建日志
   * @param {string} filePath - 文件路径
   */
  fileCreated: (filePath) => {
    const fullMessage = `FILE CREATED: ${filePath}`;
    console.log(fullMessage);
    logToConsole(fullMessage);
  },
  
  /**
   * 记录文件更新日志
   * @param {string} filePath - 文件路径
   */
  fileUpdated: (filePath) => {
    const fullMessage = `FILE UPDATED: ${filePath}`;
    console.log(fullMessage);
    logToConsole(fullMessage);
  }
};

export default logger;